In general terms, isochronous data is data which is non-packetized and of indeterminate, potentially continuous duration. Increasing availability of multi-media computers and work stations has contributed to an increase in interest in the transfer of data from isochronous data sources and sinks. An isochronous data source is a device which outputs data in a continuous stream, usually at a substantially constant average data rate. Examples include video cameras, which output a substantially continuous stream of data representing images and associated sounds, and telephone output, which can be a substantially continuous output of voice data (either analog or digitized). An example of an isochronous data sink is a video monitor which can receive a substantially continuous stream of video data for display.
Related to isochronous sources and sinks is the concept of data transfer which can also be either isochronous or non-isochronous. One type of non-isochronous data transfer is a packet-type transfer. As shown in FIG. 1A, data can be transferred in a plurality of packets 12a, 12b which can be either constant-sized or variable-sized. Each packet includes a field of data 14a, 14b which may be preceded and/or followed by non-data information such as preamble information 16a, 16b housekeeping information such as data source information, data destination information, and the like 18a, 18b and a frame end marker 20a. As seen in FIG. 1A, because the fields provided for data 14a, 14b are not substantially continuous, the packetized scheme of FIG. 1A is not isochronous but is "bursty" in nature. An example of packetized data transfer is the commonly-used ethernet system, one implementation of which, known as 10BASE-T is described in the Draft Nine Supplement to IEEE Standard 802.3, dated Nov. 15, 1989.
Another type of non-isochronous data transfer is a token ring system. In a token ring system, a node is permitted to transmit data only after receipt of an electronic "token." As depicted in FIG. 1B, a first station may transmit a token 22a which is received 24a by a second station whereupon the second station may begin transmission of data 26a. After a period of data transmission, the second station transmits the token 22b which is received by a third station 24b that can then begin its own transmission of data 26b. As seen in FIG. 1B, because data transmission is synchronized with the occurrence of an event (the arrival of a token), the token ring system is not an isochronous data transfer system. One commonly used token ring network is described in IEEE Standard 802.5.
In contrast, FIG. 1C schematically depicts isochronous data transfer. In isochronous data transfer, the data transfer or connection is initiated, such as by initiating a telephone conversation or beginning a video camera transmission 30. After the connection is initiated, transmission of the data, possibly accompanied by transmission of housekeeping information (such as destinations, audio or video timing and the like) is provided substantially continuously for an indeterminate period, such as until termination of the connection 32. Although it may be that not every bit transferred represents a data bit (since "housekeeping" bits may be also transferred), the transfer of data is substantially continuous in the sense that there are no substantial periods during which no data bits are transferred. It is possible that the data being transferred is "null" data such as silence during a telephone conversation or transfer of a blank video image. One type of isochronous data transfer is the Fiber Distributed Data Interface-II (FDDI-II) as described, for example, in FDDI-II Hybrid Multiplexer, Revision 2.4; dated Mar. 25, 1991.
Previous attempts to accommodate isochronous data on a data network have resulted in characteristics which are disadvantageous for at least some applications. Some previous devices and methods have transmitted data using a frame structure. However, previous devices have not adequately transmitted data in continuous time frames while accommodating the data rate needs of a variety of data sources and sinks, including both isochronous and non-isochronous data sources and sinks. Previous devices have not provided for sufficient independence of various source and sinks. Previous devices have not adequately provided for guaranteed sustainable and switchable bandwidth for isochronous data, and particularly have not permitted a user to select a desired bandwidth for transmission of isochronous data. Previous devices have not adequately provided for interaction of network with an external clocked system and particularly have not adequately provided for contention between two or more different external clocks for accommodation to the data rate of a non-selected or skewed external clock reference.
Accordingly, it would be advantageous to provide an isochronous data communication system in which data is transmitted in a frame structure while accommodating differing data rate requirements of various data sources and sinks. It would also be advantageous to provide a system in which the bandwidth for given isochronous sources or sinks can be selected with a predetermined granularity. It would also be advantageous to provide a network which can accommodate its timing to an external clock reference that can coordinate output from the network to different systems running according to two different clocks or according to skewed clocks.